/*
 * Zadanie 3 3
 *
 * Na podstawie funkcji z powyższych przykładów napisz własną funkcję:
 *
 * int findSubstring(char* stringWejsciowy, char* substring),
 *
 * która w stringuWejsciowym znajdzie pierwsze miejsce (numer indeksu) gdzie wystepuje
 * substring podany jako drugi argument. Funkcja ma zwraca numer indeksu od którego
 * zaczyna się pierwszy szukany substring, oraz –1 jeżeli takiego substringu nie ma w stringuWejsciowym.
 *
 * Po zapoznaniu się z dokumentacją do klasy string, która jest tutaj rozwiąż powyższe zadanie dla funkcji
 *
 * int findSubstring(string stringWejsciowy, string substring),
 *
 * Którą z poniższych wersji można napisać prościej
 *
 * int findSubstring(string stringWejsciowy, char* substring),
 *
 * czy
 *
 * int findSubstring(char* stringWejsciowy, string substring),
 *
 * Version: $Id: main.cpp 52 2011-11-09 20:14:41Z s8376@pjwstk.edu.pl $
 */
#include <iostream>

using namespace std;

bool findSubstringHelper(char* stringWejsciowy, char* substring)
{
    bool isIdentical = true;

    while (*substring != 0) {

        if (*substring != *stringWejsciowy) {
            isIdentical = false;
            break;
        }

        substring++;
        stringWejsciowy++;
    }

    return isIdentical;
}


int findSubstring(char* stringWejsciowy, char* substring)
{
    bool isFound = false;
    int charCounter = 0, foundOnPosition = 0;

    while (*stringWejsciowy != 0) {

        if (*stringWejsciowy == *substring) {
            foundOnPosition = charCounter;
            isFound = findSubstringHelper(stringWejsciowy, substring);

            if (isFound) {
                break;
            }
        }

        stringWejsciowy++;
        charCounter++;
    }

    return isFound ? foundOnPosition : -1;
}

//int findSubstring(string stringWejsciowy, string substring);
//int findSubstring(string stringWejsciowy, char* substring);
//int findSubstring(char* stringWejsciowy, string substring);

int main(void)
{
//    char stringA[100] = "Lorem ipsum dolor sit amet enim. Etiam ullamcorper";
//    char stringB[100] = "amet enim";


    char stringA[100] = "aaabbbaaa";
    char stringB[100] = "bbb";


    cout << findSubstring(stringA, stringB) << endl;

    return 0;
}
